package com.mj.util;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;


/**
 * 数据库定时备份
 *@ClassName:BackupDataBase.java
 *@author MJ009
 *@date 2016年8月24日
 *@Description TODO
 *
 */
@Component
public class BackupDataBase {
//	private static String hostIP="192.168.1.24";
//	private static String userName="root";
//	private static String password="root";
//	private static String savePath="D:/backupDatabase";
//	private static String databaseName="library";
//	private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
//	protected Logger log = Logger.getLogger(this.getClass());
//	/**
//	 *cron参数按顺序依次为
//	 *秒（0~59）
//	 *分钟（0~59）
//	 *小时（0~23）
//	 *天（月）（0~31，但是你需要考虑你月的天数）
//	 *月（0~11）
//	 *天（星期）（1~7 1=SUN 或 SUN，MON，TUE，WED，THU，FRI，SAT）
//	 *年份（1970－2099）
//	 *"0 0 12 * * ?" 每天中午12点触发 
//	 * 1/5 * *  * * ?  每5秒执行一次  
//	 */
//	 @Scheduled(cron="0 0 1 * * ?")   //每天凌晨1点备份
//     public void backHandle(){  
//		 String fileName = dateFormat.format(new Date())+".sql";
//			File saveFile = new File(savePath);
//			if (!saveFile.exists()) {// 如果目录不存在
//				saveFile.mkdirs();// 创建文件夹
//			}
//			if (!savePath.endsWith(File.separator)) {
//				savePath = savePath + File.separator;
//			}
//
//			StringBuilder stringBuilder = new StringBuilder();
//			stringBuilder.append("mysqldump").append(" --opt").append(" -h").append(hostIP);
//			stringBuilder.append(" --user=").append(userName) .append(" --password=").append(password).append(" --lock-all-tables=true");
//			stringBuilder.append(" --result-file=").append(savePath + fileName).append(" --default-character-set=utf8 ").append(databaseName);
//			try {
//				System.out.println(stringBuilder.toString());
//				Process process = Runtime.getRuntime().exec(stringBuilder.toString());
//				if (process.waitFor() == 0) {// 0 表示线程正常终止。
//					System.out.println("--------------");
//		 			log.info("数据库定时备份：文件名--"+fileName+".sql--备份时间"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//				}
//			} catch (IOException e) {
//	 			log.info("数据库定时备份：备份出错-"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"-IOException-"+e);
//				e.printStackTrace();
//			} catch (InterruptedException e) {
//	 			log.info("数据库定时备份：备份出错-"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"-IOException-"+e);
//				e.printStackTrace();
//			}
//     }  
}
